Summary
Nozomi reported eight vulnerabilities to WAGO affecting different firmwares installed on several devices.
Impact
The identified vulnerabilities could lead to a denial-of-service attack or alter of the firmware and docker configuration.
Affected Product(s)
Model no. | Product name | Affected versions |
---|---|---|
0751-9?01 | WAGO CC100 0751/9x01 | Firmware <=04.04.03(70), Firmware <=04.03.03(72), Firmware <=4.5.10 (FW27) |
0752-8303/8000-0002 | WAGO Edge Controller 0752-8303/8000-0002 | Firmware <=4.5.10 (FW27) |
0750-810?/????-???? | WAGO PFC100 G1 0750-810x/xxxx-xxxx | Firmware <=3.10.10 (FW22 Patch 1) |
0750-811?-????-???? | WAGO PFC100 G2 0750-811x/xxxx-xxxx | Firmware <=4.5.10 (FW27) |
750-820?-????-???? | WAGO PFC200 G1 0750-820x/xxx-xxx | Firmware <=03.03.08(80), Firmware <=3.10.10 (FW22 Patch 1) |
750-821?-????-???? | WAGO PFC200 G2 0750-821x/xxx-xxx | Firmware <=04.04.03(70), Firmware <=4.5.10 (FW27) |
0762-420?/8000-000? | WAGO TP600 0762-420x/8000-000x | Firmware <=4.5.10 (FW27) |
0762-430?/8000-000? | WAGO TP600 0762-430x/8000-000x | Firmware <=4.5.10 (FW27) |
0762-520?/8000-000? | WAGO TP600 0762-520x/8000-000x | Firmware <=4.5.10 (FW27) |
0762-530?/8000-000? | WAGO TP600 0762-530x/8000-000x | Firmware <=4.5.10 (FW27) |
0762-620?/8000-000? | WAGO TP600 0762-620x/8000-000x | Firmware <=4.5.10 (FW27) |
0762-630?/8000-000? | WAGO TP600 0762-630x/8000-000x | Firmware <=4.5.10 (FW27) |
Vulnerabilities
Expand / Collapse allThe PLC Runtime Services property in the Configuration tab allows administrators to modify the CODESYS service configuration, enabling engineers to install applications on the PLC device. This functionality is hidden from regular user profiles in the frontend and is documented as admin-only in the user manual. However, despite the PLC Runtime Services tab being inaccessible to regular users, a low-privileged attacker can bypass this by sending a crafted HTTP request with a valid user session. This allows them to modify the service configuration, potentially disabling the authentication required for the CODESYS V3 service, giving full access to the PLC's application layer. A proof-of-concept demonstrates that a user-level session can successfully modify the PLC Runtime Settings via an HTTP request, disabling CODESYS V3 authentication.
The savesram command in the PLC Shell functionality of the CODESYS framework allows authenticated users to save the device's memory to a backup file on the system. However, this feature does not properly sanitize the user input for the
The saveretain command in the PLC Shell functionality of the CODESYS framework allows authenticated users to save backup data to a specified file location. However, this functionality does not properly sanitize user input for the
The Boot mode configuration in the Security tab allows an administrator to change the device's boot mode, determining the firmware location to be executed. This functionality is hidden from regular user profiles in the frontend and is documented as admin-only in the user manual. However, although the Security tab is not visible to regular users, a low-privileged attacker can bypass this by sending a crafted HTTP request with a valid user session. This enables them to modify the boot mode configuration, potentially causing a denial-of-service attack or altering the firmware upgrade process. A proof-of-concept shows that a user-level session can successfully modify the boot configuration mode through a crafted HTTP request.
The BACNet Configuration property in the Fieldbus tab allows administrators to configure the BACNet service, including enabling, disabling, and modifying its properties. While the web interface correctly restricts low-privileged users by displaying this tab as read-only, as only administrators should be able to change the BACNet service according to the user manual, this restriction is not enforced on the underlying Linux operating system. As a result, an attacker with user-level access can modify the BACNet configuration through an SSH shell, exploiting weak system permissions.
The restoresram command in the PLC Shell functionality of the CODESYS framework allows authenticated users to restore the device's memory from a backup file on the system. However, this functionality does not properly sanitize the user input for the
The Network Capture feature in the Diagnostic tab allows administrators to enable or disable the capture of network traffic for diagnostic purposes. Since the Wago PLC device supports unencrypted communication protocols like HTTP and FTP, captured traffic may include sensitive information such as login credentials. According to the user manual, only administrators should have access to download and analyze this data. However, the captured traffic is stored in a publicly readable directory (/var/tmp/pcap) with weak permissions, as shown in the example where the file is saved with -rw-r--r-- permissions. This allows any user with SSH access, including low-privileged users, to read and download the file. The vulnerability allows low-privileged users to bypass access controls, download network traffic data, and extract sensitive information such as administrator credentials, as demonstrated in a proof-of-concept involving a password reset captured via HTTP.
The Docker settings within the Configuration tab allow an administrator to enable or disable the Docker service on the device. This functionality is hidden from regular user profiles in the frontend and is documented as an admin-only feature in the user manual. However, although the Docker Settings tab is shown as read-only for regular users, a low-privileged attacker can bypass this by sending a crafted HTTP request with a valid user session. This allows them to modify the Docker service configuration, potentially causing a denial-of-service attack on certain services within a Docker container. A proof-of-concept demonstrates how a user-level session can successfully modify the Docker settings via an HTTP request.
Remediation
Update to Firmware 4.6.x (FW28). For G1 devices update to Firmware 3.10.11 (FW22 Patch 2). For the latest Custom Firmware, please contact the WAGO support.
Revision History
Version | Date | Summary |
---|---|---|
1 | 11/18/2024 12:00 | Initial document. |
2 | 01/30/2025 12:00 | Added known mitigations as remediation. Added the Custom Firmware to the product branch. Added firmware 3.10.11 (Firmware 22 Patch 2) to the fixed products. This version was in revision 1 listed as vulnerable. |
3 | 02/12/2025 17:48 | Fix: corrected self-reference, fixed version |
4 | 05/22/2025 15:03 | Fix: quotation mark |